//
//  MessageSettingTableViewController.m
//  糗事百科
//
//  Created by 奚超明 on 16/6/7.
//  Copyright © 2016年 奚超明. All rights reserved.
//

#import "MessageSettingTableViewController.h"
#import "MessageSettingCell.h"

@interface MessageSettingTableViewController ()
/** 表头标题数组 */
@property (nonatomic, strong) NSMutableArray *headTitleArr;
/** 栏目字典 */
@property (nonatomic, strong) NSMutableDictionary *titleDic;

@end

@implementation MessageSettingTableViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 界面设置
    [self setupTableView];
}

#pragma mark - 设置界面
- (void)setupTableView
{
    // 标题
    self.navigationItem.title = @"提醒和通知";
    
    self.tableView = [[UITableView alloc] initWithFrame:self.tableView.frame style:UITableViewStyleGrouped];
    
    [self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([MessageSettingCell class]) bundle:nil] forCellReuseIdentifier:@"MessageSettingCell"];
}

#pragma mark - 分区数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return self.headTitleArr.count;
}

#pragma mark - 行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // 取出排序好的key数组
    NSArray *keyArr = [self ascendingKeyArray];
    NSString *key = keyArr[section];
    NSArray *valueArr = self.titleDic[key];
    
    return valueArr.count;
}

#pragma mark - 获得一个有序key数组
- (NSArray *)ascendingKeyArray
{
    NSArray *keyArr = [[self.titleDic allKeys] mutableCopy];
    NSArray *newKeyArr = [keyArr sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
        if([obj1 integerValue] < [obj2 integerValue]){
            return NSOrderedAscending;
        }
        if([obj1 integerValue] > [obj2 integerValue]){
            return NSOrderedDescending;
        }
        return NSOrderedSame;
    }];
    return newKeyArr;
}

#pragma mark - 返回cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    MessageSettingCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MessageSettingCell"];
    
    NSArray *keyArr = [self ascendingKeyArray];
    NSArray *valueArr = self.titleDic[keyArr[indexPath.section]];
    cell.titleLabel.text = valueArr[indexPath.row];
    
    return cell;
}

#pragma mark - 分区标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return self.headTitleArr[section];
}

#pragma mark - 懒加载
- (NSMutableArray *)headTitleArr
{
    if (!_headTitleArr) {
        _headTitleArr = [@[@"新消息提醒", @"功能消息提醒", @"免打扰模式"] mutableCopy];
    }
    return _headTitleArr;
}

- (NSMutableDictionary *)titleDic
{
    if (!_titleDic) {
        _titleDic = [@{
                       @"0" : @[@"声音", @"振动"],
                       @"1" : @[@"糗事消息", @"糗友圈消息", @"群通知", @"精选糗事推送", @"新小纸条", @"新粉丝"],
                       @"2" : @[@"夜间免打扰模式"]
                       } mutableCopy];
    }
    return _titleDic;
}

@end
